//
// Created on 2024/12/26.
//
// Node APIs are not fully supported. To solve the compilation error of the interface cannot be found,
// please include "napi/native_api.h".

#ifndef HARMONYAPP_LINKLOGGER_H
#define HARMONYAPP_LINKLOGGER_H


#ifdef __HMOS__
#include <hilog/log.h>
#define LINK_LOG_DEBUG(...) OH_LOG_DEBUG(LOG_APP, __VA_ARGS__)
#define LINK_LOG_WARN(...) OH_LOG_WARN(LOG_APP, __VA_ARGS__)
#define LINK_LOG_ERROR(...) OH_LOG_ERROR(LOG_APP, __VA_ARGS__)
#elif __ANDROID__

#include "android/log.h"
#define LOG_TAG "ANDROID_LINK"

#define LINK_LOG_INFO(...) __android_log_print(ANDROID_LOG_INFO, LOG_TAG, __VA_ARGS__)
#define LINK_LOG_ERROR(...)  __android_log_print(ANDROID_LOG_ERROR, LOG_TAG, __VA_ARGS__)
#define LINK_LOG_DEBUG(...)  __android_log_print(ANDROID_LOG_DEBUG, LOG_TAG, __VA_ARGS__)
#define LINK_LOG_WARN(...)  __android_log_print(ANDROID_LOG_WARN, LOG_TAG, __VA_ARGS__)
#define LINK_LOG_VERBOSE(...)  __android_log_print(ANDROID_LOG_VERBOSE, LOG_TAG, __VA_ARGS__)



#else
#define LOG_TAG "Blink"
#define LINK_LOG_DEBUG(...) do { \
    fprintf(stderr, LOG_TAG); fprintf(stderr, ": "); fprintf(stderr, ##__VA_ARGS__); fprintf(stderr, "\n"); } while(0)
#define LINK_LOG_WARN(...) do { \
    fprintf(stderr, LOG_TAG); fprintf(stderr, ": "); fprintf(stderr, ##__VA_ARGS__); fprintf(stderr, "\n"); } while(0)
#define LINK_LOG_ERROR(...) do { \
    fprintf(stderr, LOG_TAG); fprintf(stderr, ": "); fprintf(stderr, ##__VA_ARGS__); fprintf(stderr, "\n"); } while(0)

#endif

#endif //HARMONYAPP_LINKLOGGER_H



